//
//  CloudLiveSDK.h
//  CloudLiveSDK
//
//  Created by LuoLiuyou on 2016/10/9.
//  Copyright © 2016年 Talkfun. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "TalkfunSetting.h"
#import "TalkfunSDK.h"
#import "TalkfunSDKLifeLiveConfig.h"
#import <AVFoundation/AVFoundation.h>
typedef NS_ENUM (NSInteger,TalkfunCloudLiveModel){
    TalkfunCloudLiveModelNormal = 0,//主讲
    TalkfunCloudLiveModelYu_Ying_Yun = 1,//语音云直播
    TalkfunCloudLiveModelSmall_Live = 2,//小班直播（1v4)
    TalkfunCloudLiveModelSmall_Apply = 3,//举手模式(大班互动）
    TalkfunCloudLiveModelOne_To_One = 4, //1V1模式
    TalkfunCloudLiveModelOne_To_Multiple  = 5,//1V16模式
    TalkfunCloudLiveModelSmall_Live_new = 6,//小班直播（1v4)  新版的
    TalkfunCloudLiveModelBusiness
};

// 状态码
typedef NS_ENUM (NSInteger,TalkfunCloudLiveCode){
    TalkfunCloudLiveCodeGetDataFail = -101,
    TalkfunCloudLiveCodeWrongPassword = -3,
    TalkfunCloudLiveCodeFail = -1, //使用主播ID登录
    TalkfunCloudLiveCodeSuccess = 0,
    TalkfunCloudLiveCodeInTheProcessing = 34,
    TalkfunCloudLiveCodeInTheLive  = 204,//该账号当前有其他人在直播中
    TalkfunCloudLiveCodeNoExist   = 300, // 主播不存在
    TalkfunCloudLiveCodeUploading = 500,
    TalkfunCloudLiveCodeHasBeenUploaded = 501,
    TalkfunCloudLiveCodeUploadFail = 503,
    
    TalkfunCloudLiveCodeUnknownError = 1000,
    TalkfunCloudLiveThere_are_currently_no_courses = 1264,//表示当前时间没有课程 
    TalkfunCloudLiveCodeCaptcha_Expired = 20105,  //验证码过期
    TalkfunCloudLiveCodeCaptcha_Error = 20106,  //验证码错误
    TalkfunCloudLiveCodeCaptcha_Frequently = 20107,  //发送太频繁,请稍后再试
    TalkfunCloudLiveCodePassword_Error = 20092,   //密码错误
    TalkfunCloudLiveCodeAlready_Register = 20100,   //手机号已注册
    TalkfunCloudLiveCodeNot_Register = 20200        //手机号未注册


};

//工具栏操作类型
typedef NS_ENUM (NSInteger,TalkfunCloudLiveOperateType){
    TalkfunCloudLiveOperateTypeApplication   = 0, //应用
    TalkfunCloudLiveOperateTypePlay          = 1, //播放
    TalkfunCloudLiveOperateTypeStop          = 2, //暂停
    TalkfunCloudLiveOperateTypeDrag          = 3, //拖动
    TalkfunCloudLiveOperateTypeClose         = 4, //关闭
    TalkfunCloudLiveOperateTypeEnd           = 5, //结束
    TalkfunCloudLiveOperateTypeRespon        = 6 //学员抢答
};

// 聊天状态
typedef NS_ENUM(NSInteger,TalkfunCloudLiveChatStatus){
    TalkfunCloudLiveChatStatusDisable = 0,       //禁言状态
    TalkfunCloudLiveChatStatusEnable = 1         //允许聊天状态
};

// 全体禁言状态
typedef NS_ENUM(NSInteger,TalkfunCloudLiveChatDisableAllStatus){
    TalkfunCloudLiveChatDisableAllStatusClose = 0,      //全体禁言关闭
    TalkfunCloudLiveChatDisableAllStatusOpen = 1        //全体禁言开启
};

// 网络
typedef enum: NSUInteger{
    TalkfunCloudLiveNetworkStatusNone = 0,          //没有网络
    TalkfunCloudLiveNetworkStatusWifi,          //wifi
    TalkfunCloudLiveNetworkStatusWWAN,          //WWAN
    TalkfunCloudLiveNetworkStatusOther        //其它
}TalkfunCloudLiveNetworkStatus;


//水印位置
typedef enum: NSUInteger{
    TalkfunLiveWatermarkLocationTopLeft = 0,             //左上角
    TalkfunLiveWatermarkLocationTopRight = 1,            //右上角
    TalkfunLiveWatermarkLocationBottomLeft = 2,          //左下角
    TalkfunLiveWatermarkLocationBottomRght = 3           //右下角
}TalkfunLiveWatermarkLocation;


typedef NS_ENUM(NSInteger, TFInteractiveToolStatus)
{
    // 开始
    TFInteractiveToolStatusPlay  = 1,
    //暂停
    TFInteractiveToolStatusStop = 2,
    //重新开始
    TFInteractiveToolStatusRestart = 3,
    //关闭
    TFInteractiveToolStatusClose = 4,
    //结束
    TFInteractiveToolStatusEnd = 5,

};
//推流状态
typedef NS_ENUM(NSInteger,TalkfunLiveStreamState) {
    /// 准备
    TalkfunLiveStreamStateReady = 0,
    /// 连接中
    TalkfunLiveStreamStatePending = 1,
    /// 已连接
    TalkfunLiveStreamStateStart = 2,
    /// 已断开
    TalkfunLiveStreamStateStop = 3,
    /// 连接出错
    TalkfunLiveStreamStateError = 4,
    ///  正在刷新
    TalkfunLiveStreamStateRefresh = 5,
    /// 重新连接
    TalkfunLiveStreamStateReconnection = 6
    
};

//直播状态
typedef NS_ENUM(NSInteger, TalkfunLiveState)
{
    TalkfunLiveStateStop,       //结束状态
    TalkfunLiveStatePause,      //暂停状态
    TalkfunLiveStateStart,      //直播状态
    TalkfunLiveStateReady,      //准备完毕状态
    TalkfunLiveStateFail        //失败状态
};

//直播状态
typedef NS_ENUM(NSInteger, TalkfunSharpnessState)
{
    // 超清                       (蓝光)
    TalkfunSharpnessStateBlueLight = 0,
    // 高清
    TalkfunSharpnessStateHD = 1,
    // /标清
    TalkfunSharpnessStateSD = 2,

};
//直播状态
typedef NS_ENUM(NSInteger, TalkfunCourseMode)
{
    // 视频全屏
    TalkfunCourseModeVideoFullScreen = 220,
    // 视频取消全屏
    TalkfunCourseModeVideoCancelFullScreen = 221,
//    // 文档全屏
//    TalkfunCourseModeDocumentFullScreen = 222,
//    // 文档取消全屏
//    TalkfunCourseModeDocumentCancelFullScreen = 223 ,
};

typedef NS_ENUM(NSInteger, TalkfunPreviewScalingMode)
{
    
    
    TalkfunPreviewScalingModeFill = 0,// 图像铺满屏幕，不留黑边，如果图像宽高比不同于屏幕宽高比，部分画面内容会被裁剪掉
    
    TalkfunPreviewScalingModeAspectFit = 1, ///< 图像适应屏幕，保持画面完整，但如果图像宽高比不同于屏幕宽高比，会有黑边的存在。
      
};



@interface TalkfunCloudLiveSDK : NSObject

extern NSString * const TalkfunCloudLiveSDKVersion;     //SDK版本

/**
 用户角色
 **/
extern NSString * const TalkfunCloudLiveMemberRoleSpadmin;       //超级管理员(老师)
extern NSString * const TalkfunCloudLiveMemberRoleAdmin;         //管理员(助教)
extern NSString * const TalkfunCloudLiveMemberRoleUser;          //普通用户(学生)
extern NSString * const TalkfunCloudLiveMemberRoleGuest;         //游客


//MARK:事件
/**
 *  系统事件
 */
extern NSString * const TALKFUN_EVENT_CONNECT;              //连接
extern NSString * const TALKFUN_EVENT_RECONNECT;            //重新连接
extern NSString * const TALKFUN_EVENT_RECONNECT_ATTEMPT;    //尝试重新连接
extern NSString * const TALKFUN_EVENT_DISCONNECT;           //断开
extern NSString * const TALKFUN_EVENT_RTMP_ERROR;                //rtmp错误
extern NSString * const TALKFUN_EVENT_ERROR;                //错误

/**
 *  用户事件
 */

extern NSString * const TALKFUN_EVENT_RTC_RESPONDINVITE_REJECT; //拒绝连麦

extern NSString * const TALKFUN_EVENT_INTERACTION;

extern NSString * const TALKFUN_CLOUDLIVE_EVENT_ROOM_INIT;            //初始化房间信息

extern NSString * const TALKFUN_EVENT_ZHUBO_KICKED;               //主播被踢下线
extern NSString * const TALKFUN_EVENT_COURSE_EXPIRE;                //课程超时

extern NSString * const TALKFUN_EVENT_RTC_ZHIBO_JOIN;         // 主播被挤下线

extern NSString * const TALKFUN_CLOUDLIVE_EVENT_MEMBER_TOTAL;         //总人数
extern NSString * const TALKFUN_CLOUDLIVE_EVENT_MEMBER_JOIN_ME;       //自己进入房间
extern NSString * const TALKFUN_CLOUDLIVE_EVENT_MEMBER_JOIN_OTHER;    //其他人进入房间
extern NSString * const TALKFUN_CLOUDLIVE_EVENT_MEMBER_LEAVE;         //其他人退出房间
extern NSString * const TALKFUN_CLOUDLIVE_EVENT_MEMBER_LIST;          //用户列表
extern NSString * const TALKFUN_CLOUDLIVE_EVENT_CHAT_SENT;            //聊天信息
extern NSString * const TALKFUN_CLOUDLIVE_EVENT_CHAT_PRIVATE;         //私聊
extern NSString * const TALKFUN_CLOUDLIVE_EVENT_CHAT_DISABLE;         //禁言
extern NSString * const TALKFUN_CLOUDLIVE_EVENT_CHAT_DISABLE_ALL;     //全部禁言

extern NSString * const TALKFUN_CLOUDLIVE_EVENT_QUESTION_ASK;         //提问信息
extern NSString * const TALKFUN_CLOUDLIVE_EVENT_QUESTION_REPLY;       //回复信息
extern NSString * const TALKFUN_CLOUDLIVE_EVENT_QUESTION_DELETE;      //提问删除

extern NSString * const TALKFUN_CLOUDLIVE_EVENT_FLOWER_SEND;          //送花信息

extern NSString * const TALKFUN_CLOUDLIVE_EVENT_VOTE_NEW;             //发起投票
extern NSString * const TALKFUN_CLOUDLIVE_EVENT_VOTE_PUB;             //结束投票

extern NSString * const TALKFUN_CLOUDLIVE_EVENT_LOTTERY_START;        //开始抽奖
extern NSString * const TALKFUN_CLOUDLIVE_EVENT_LOTTERY_STOP;         //停止抽奖

extern NSString * const TALKFUN_CLOUDLIVE_EVENT_ANNOUNCE_NOTICE;      //公告
extern NSString * const TALKFUN_CLOUDLIVE_EVENT_ANNOUNCE_ROLL;        //滚动通知

extern NSString * const TALKFUN_CLOUDLIVE_EVENT_BROADCAST;            //广播信息

//语音相关消息
extern NSString * const TALKFUN_CLOUDLIVE_EVENT_VOICE_MODE_CHANGE;    //语音模式切换
extern NSString * const TALKFUN_CLOUDLIVE_EVENT_VOICE_POWER_ALLOW;    //允许发言
extern NSString * const TALKFUN_CLOUDLIVE_EVENT_VOICE_POWER_FORBID;   //禁止发言

extern NSString * const TALKFUN_CLOUDLIVE_EVENT_VOICE_QUEUE_CONTROL;  //麦序队列状体控制
extern NSString * const TALKFUN_CLOUDLIVE_EVENT_VOICE_QUEUE_TIME;     //麦序时间设置
extern NSString * const TALKFUN_CLOUDLIVE_EVENT_VOICE_QUEUE_MOVE;     //移动位置(废弃)
extern NSString * const TALKFUN_CLOUDLIVE_EVENT_VOICE_QUEUE_MOVETO;   //移动麦序到第二位置
extern NSString * const TALKFUN_CLOUDLIVE_EVENT_VOICE_QUEUE_CLEAR;    //清空麦序

extern NSString * const TALKFUN_CLOUDLIVE_EVENT_VOICE_HAND_UP;        //举手
extern NSString * const TTALKFUN_CLOUDLIVE_EVENT_VOICE_HAND_ALLOW;     //举手允许发言
extern NSString * const TALKFUN_CLOUDLIVE_EVENT_VOICE_HAND_FORBID;    //举手关闭发言
extern NSString * const TALKFUN_CLOUDLIVE_EVEN_VOICE_HAND_REMOVE;    //从举手列表移除
extern NSString * const TALKFUN_CLOUDLIVE_EVEN_VOICE_HAND_CLEAR;     //清空举手列表
extern NSString * const TALKFUN_CLOUDLIVE_EVEN_VOICE_HAND_LEAVE;     //用户退出举手列表



/**
 *  广播事件
 */
extern NSString * const TALKFUN_CLOUDLIVE_NOTIFICATION_TOTAL_ONLINE;      //在线人数
extern NSString * const TALKFUN_CLOUDLIVE_NOTIFICATION_CHAT_SEND;         //聊天信息
extern NSString * const TALKFUN_CLOUDLIVE_NOTIFICATION_QUESTION_ASK;      //提问信息
extern NSString * const TALKFUN_CLOUDLIVE_NOTIFICATION_QUESTION_REPLY;    //回复信息
extern NSString * const TALKFUN_CLOUDLIVE_NOTIFICATION_FLOWER_SEND;       //送花信息

extern NSString * const TALKFUN_CLOUDLIVE_NOTIFICATION_DOCUMENT_DOWNLOAD_START;       //文件下载开始
extern NSString * const TALKFUN_CLOUDLIVE_NOTIFICATION_DOCUMENT_DOWNLOAD_PROGRESS;    //文件下载进度
extern NSString * const TALKFUN_CLOUDLIVE_NOTIFICATION_DOCUMENT_DOWNLOAD_DONE;        //文件下载完毕
extern NSString * const TALKFUN_CLOUDLIVE_NOTIFICATION_DOCUMENT_DOWNLOAD_FAIL;        //文件下载失败

extern NSString * const TALKFUN_CLOUDLIVE_NOTIFICATION_DOCUMENT_UPLOAD_START;         //文件上传开始
extern NSString * const TALKFUN_CLOUDLIVE_NOTIFICATION_DOCUMENT_UPLOAD_PROGRESS;      //文件上传进度
extern NSString * const TALKFUN_CLOUDLIVE_NOTIFICATION_DOCUMENT_UPLOAD_DONE;          //文件上传成功
extern NSString * const TALKFUN_CLOUDLIVE_NOTIFICATION_DOCUMENT_UPLOAD_FAIL;          //文件上传失败
extern NSString * const TALKFUN_CLOUDLIVE_NOTIFICATION_IMG_UPLOAD_FINISH;
// 上传图片完成

extern NSString * const TALKFUN_CLOUDLIVE_NOTIFICATION_DOCUMENT_PROCESS_START;        //文件处理开始
extern NSString * const TALKFUN_CLOUDLIVE_NOTIFICATION_DOCUMENT_PROCESS_PROGRESS;     //文件处理进度
extern NSString * const TALKFUN_CLOUDLIVE_NOTIFICATION_DOCUMENT_PROCESS_DONE;         //文件处理成功
extern NSString * const TALKFUN_CLOUDLIVE_NOTIFICATION_DOCUMENT_PROCESS_FAIL;         //文件处理失败

extern NSString * const TALKFUN_CLOUDLIVE_NOTIFICATION_WHITEBOARD_RELOAD;             //白板重新加载
extern NSString * const TTALKFUN_CLOUDLIVE_NOTIFICATION_WHITEBOARD_COMMAND_SEND;       //白板命令发送


@end

/**
 发送通知
 */
@interface TFNoticeParams : NSObject

@property(nonatomic,copy)NSString * link; // 超链接

@property(nonatomic,assign)NSInteger duration; // 时长

@property(nonatomic,copy)NSString * content; //输入的通知内容

@end

/**
 发送点名
 */
@interface TFRollParams : NSObject

@property(nonatomic,copy)NSString *signId;  //点名id
@property(nonatomic,assign)NSInteger page;   //页数

@property(nonatomic,assign)NSInteger signUser;//是否只获取已签到的用户 0或不传，获取全部用户；1 只获取已签到用户

@property(nonatomic,assign)NSInteger total;  //总数

@end

/**
 发送投票
 */
@interface TFVoteParams : NSObject

@property(nonatomic,copy)NSString *title; //投票的标题

@property(nonatomic,copy)NSString *label; //投票的标签

@property(nonatomic,copy)NSString *type;  //投票的类型

@property(nonatomic,copy)NSString *optional; // 投票的可选项数量

@property(nonatomic,copy)NSDictionary *op; //投票的全部选项

@property(nonatomic,copy)NSString *imageUrl;//题目图片地址，没有则传空字符串

@property(nonatomic,copy)NSString *answer; // 问题答案，多个答案用英文逗号分隔

@property(nonatomic,copy)NSString *vid;//要修改的投票ID

@end


@interface TalkfunHBModel : NSObject
@property(nonatomic,copy)NSString * xid;
@property(nonatomic,copy)NSString * role;
@property(nonatomic,copy)NSString * title;
@property(nonatomic,copy)NSString * nickname;
@property(nonatomic,copy)NSString * hid; //发放id
@property(nonatomic,copy)NSString * time;
@property(nonatomic,copy)NSString * avatar;
@property(nonatomic,copy)NSString * isHB;

@end

//第三方通知
@interface TalkfunBroadcastThird : NSObject
@property(nonatomic,copy)NSString * message;
@property(nonatomic,copy)NSString * uniqid;
/**时间戳  例:1620785516*/
@property(nonatomic,copy)NSString * time;
@end
//机器人标签
@interface TFuserTagShow : NSObject
//0不展示 1展示
@property(nonatomic,assign)bool zhubo;
@property(nonatomic,assign)bool admin;
@end
//课程冲突
@interface TFcourseConflict : NSObject

//分钟
@property(nonatomic,assign)NSInteger minute;
@end

/**
*     进入房间参数的模型
*/
@interface TalkfunLiveInitParams : NSObject
/**课程id
 */
@property (nonatomic, copy, nonnull)NSString*courseID;

@end


@interface TalkfunLiveWatermark : NSObject
//水印链接
@property (nonatomic, copy, nonnull)NSString*watermarkUrl;
//水印位置
@property (nonatomic, assign) TalkfunLiveWatermarkLocation location;

//水印开关 true开   falsa 关
@property (nonatomic, assign)BOOL enable;
@end

@interface TalkfunLiveModules : NSObject
/*水印配置*/
@property (nonatomic, strong)TalkfunLiveWatermark* _Nonnull watermark;
@end


/**房间数据配置*/
@interface TalkfunLiveRoom : NSObject
/** 需要审核聊天的渠道id数组eg:[0,1,2] */
@property (nonatomic, strong)NSMutableArray <NSNumber *>* _Nonnull chat_check;
@end

/**直播的课程配置*/
@interface TalkfunLiveRoomInfo : NSObject
/*房间数据 */
@property(nonatomic,strong)TalkfunLiveRoom *room;
/* 获取当前用户个人数据 */
@property (nonatomic,strong)TFMember *myInfo;
/**聊天审核*/
@property(nonatomic,strong)TFmod_chat_check * _Nonnull mod_chat_check;

/* 课程数据*/
@property (nonatomic,strong)TFLifePageConfig * _Nonnull pageConfig;
/*主播个人数据*/
@property (nonatomic,strong)TFZhubo * _Nonnull zhubo;
/*配置*/
@property (nonatomic,strong)TalkfunLiveModules * _Nonnull modules;
/*同时在线人数*/
@property (nonatomic,assign)NSInteger peakConcurrentUsers;
@property (nonatomic,assign)NSInteger likeTimes;// 点赞数  已过期, 不推荐使用,推荐使用 likeResult
/*默认点赞数*/
@property (nonatomic, strong)TFLikeData * _Nonnull likeResult;
//获取当前直播时长
@property (nonatomic, assign)NSInteger liveDuration;
//直播状态
@property (nonatomic,assign) TalkfunLiveState liveState;
//推流状态
@property (nonatomic,assign) TalkfunLiveStreamState streamState;
/**获取摄像头状态 */
@property (nonatomic, assign)BOOL isCamera;
//课程ID
@property (nonatomic,strong) NSString * _Nonnull courseID;
/*在线的机器人列表*/
@property (nonatomic, strong)NSMutableArray<TFMember *>* _Nonnull robotList;

//是否需要分享
@property(nonatomic,assign)BOOL needShare;

@property (nonatomic,strong) TFuserTagShow * _Nonnull userTagShow;

@end

/**商品状态*/
@interface TalkfunLiveGoodsParams : NSObject
///【字段含义】 商品id
@property (nonatomic, copy, nonnull) NSString* goodsId;
///【字段含义】1上架  0下架   2推荐  3 取消推荐
@property (nonatomic, assign) TalkfunPutaway putaway;
@end

@interface TalkfunQuestionReplyParameter : NSObject
///【字段含义】 课程id
@property (nonatomic, copy, nonnull) NSString* course_id;
///【字段含义】 被回复的人的身份id
@property (nonatomic, copy, nonnull) NSString* replyId;
///【字段含义】 回复的问题
@property (nonatomic, copy, nonnull) NSString* content;

@end
/**小班直播的课程配置*/
@interface TFRtcEngineKitRoomInfo : NSObject

/*房间数据 */
@property(nonatomic,strong)TalkfunLiveRoom *room;
/* 获取当前用户个人数据 */
@property (nonatomic,strong)TFMember *myInfo;
/**聊天审核*/
@property(nonatomic,strong)TFmod_chat_check * _Nonnull mod_chat_check;

@property (nonatomic,strong)NSString * _Nonnull access_token;
/*在线的机器人列表*/
@property (nonatomic, strong)NSMutableArray<TFMember *>* _Nonnull robotList;

@property (nonatomic,assign)TalkfunPageMode pageModel; //课件模式类型

//在线人数
@property(nonatomic,assign)NSInteger peakConcurrentUsers;

/* 直播信息 */
@property(nonatomic,strong) TFMod_liveInfo_Live * _Nonnull mod_liveinfo_live;

@property(nonatomic,strong) TFMod_zhuboaction_live * _Nonnull mod_zhuboaction_live;
@property(nonatomic,strong) TFMod_text_live * _Nonnull mod_text_live;

/* 用户摄像头信息 */
@property(nonatomic,strong) TFUserCamera * _Nonnull usercamera;
/**聊天上传图片*/
@property(nonatomic,copy)NSString * _Nonnull chatImageUploadUrl;
//全员视频开关状态
@property(nonatomic,assign)BOOL  allCameraStatus;
//全员音频开关状态
@property(nonatomic,assign)BOOL  allAudioStatus;
//全员聊天状态
@property(nonatomic,assign)BOOL  allMuteStatus;
@property(assign,nonatomic)BOOL  isLoadCourseware;//是否载入课件了
//是否需要分享
@property(nonatomic,assign)BOOL needShare;
/**展示*/
@property (nonatomic,strong) TFuserTagShow * _Nonnull userTagShow;
@end

//启动转盘参数
@interface TFTurntableParams : NSObject
//弧度
@property (nonatomic, assign)NSInteger degrees;
//转盘的结果
@property (nonatomic, assign)NSInteger answer;
//圈数
@property (nonatomic, assign)NSInteger count;

@end

@interface TFInteractiveToolResponderParams : NSObject

@property (nonatomic, assign)TFInteractiveToolStatus status;
@end


@interface TFInteractiveToolTimeParams : NSObject
//总时长
@property (nonatomic, assign)NSInteger lengthTime;
//剩余的时间
@property (nonatomic, assign)NSInteger remainingTime;

@property (nonatomic, assign)TFInteractiveToolStatus status;
@end

//奖励
@interface TFInteractiveToolAwardParams : NSObject
//被奖励的用户id
@property (nonatomic, strong)NSString* _Nonnull xid;
//奖励的物品ID
@property (nonatomic, strong)NSString* _Nonnull goodsId;
//数量 默认: @"1"
@property (nonatomic, assign)NSInteger   score;
@end

@interface TFInteractiveToolAwardData : NSObject
//总数
@property(nonatomic,assign)NSInteger scoreTotal;
//被奖励的用户id
@property (nonatomic, strong)NSString* _Nonnull xid;

//"toXid" : 482751709,
//"amountTotal" : 1,
//"toUid" : "u_86980109",
//"roomid" : 859980,
//"amount" : 1,
//"liveid" : "3545955",
//"scoreTotal" : 2,
//"toNick" : "66",
//"sendXid" : "115848345",
//"goodsName" : "小红花",
//"cmd" : "award:send",
//"goodsId" : 1,
//"course_id" : "2510511",
//"score" : 2
@end
@interface TalkfunHandoutModel : NSObject

@property(nonatomic,copy)NSString * _Nonnull  hongbaoCount; //总个数
@property(nonatomic,copy)NSString * _Nonnull receivedCount; //收到的数量
@property(nonatomic,copy)NSString * _Nonnull money;
@property(nonatomic,copy)NSString * _Nonnull time;
@property(nonatomic,copy)NSString * _Nonnull title;
@property(nonatomic,copy)NSString * _Nonnull avatar;
@property(nonatomic,copy)NSString * _Nonnull hid;
@property(nonatomic,copy)NSString * _Nonnull role;
@property(nonatomic,copy)NSString * _Nonnull nickname;
@property(nonatomic,copy)NSString * _Nonnull moneyTotal; //总额
@property(nonatomic,copy)NSString * _Nonnull status;
@property(nonatomic,copy)NSString * _Nonnull xid;
@end

@interface TalkfunHandoutParams : NSObject
@property(nonatomic,copy)NSString * _Nonnull liveId;
@property(nonatomic,assign)NSInteger  page;
@end

//收集信息
@interface TalkfunWXcollectPass : NSObject
@property(nonatomic,assign)NSInteger  enable;
@property(nonatomic,copy)NSString * _Nonnull user_key;//登录密码
@end

@interface TalkfunWXloginPageConfig : NSObject
@property(nonatomic,strong)TalkfunWXcollectPass * _Nonnull collectPass; //收集信息
@property(nonatomic,copy)NSString * _Nonnull loginType;//公开直播登录：0先访问登录页 1直接进入直播间
@property(nonatomic,copy)NSString * _Nonnull mode;

@property(nonatomic,copy)NSString * _Nonnull loginPageMode;//登录页 0默认 1自定义
@property(nonatomic,copy)NSString * _Nonnull  nicknameType;//公开直播昵称：0自动获取微信昵称 1手动输入昵称
@property(nonatomic,copy)NSString * _Nonnull thumb;  //图标
@end
@interface TalkfunWXShareConfig: NSObject
@property(nonatomic,copy)NSString * _Nonnull title;//直播记录名称
@property(nonatomic,copy)NSString * _Nonnull img;//分享缩略图
@property(nonatomic,copy)NSString * _Nonnull descriptions;//分享描述
@end

@interface TalkfunWXShareParams : NSObject
@property(nonatomic,copy)NSString * _Nonnull liveid;//直播记录id
@property(nonatomic,copy)NSString * _Nonnull title;//直播记录名称
@property(nonatomic,copy)NSString * _Nonnull course_id; //课程id
@property(nonatomic,copy)NSString * _Nonnull course_name;//课程名称
@property(nonatomic,copy)NSString * _Nonnull start_time;//开始时间
@property(nonatomic,copy)NSString * _Nonnull isCourse;//是否课程 1课程
@property(nonatomic,copy)NSString * _Nonnull loginUrl;//登录链接
@property(nonatomic,copy)NSString * _Nonnull user_key;//登录密码
@property(nonatomic,copy)NSString * _Nonnull qrcodeUrl; //二维码链接
@property(nonatomic,copy)NSString * _Nonnull isPublic;
@property(nonatomic,strong)TalkfunWXloginPageConfig* _Nonnull loginPageConfig;
//0秘钥方式，1公开直播，2，导入账号密码，3收集信息，4批量密码
@property(nonatomic,copy)NSString * _Nonnull loginMode;
//分享内容
@property(nonatomic,strong)TalkfunWXShareConfig* _Nonnull shareConfig;
@end
typedef NS_ENUM(NSInteger, TFPingStatus) {
    TFPingStatusDidStart, // 开始ping
    TFPingStatusDidFailToSendPacket, // 发送数据包失败
    TFPingStatusDidReceivePacket, // 收到数据包
    TFPingStatusDidReceiveUnexpectedPacket, // 收到意外的数据包
    TFPingStatusDidTimeout, // 超时
    TFPingStatusError, // 错误
    TFPingStatusFinished, // 完成
};
